package com.finance.system.bean.pojo;


import com.finance.framework.lang.BaseObject;
import com.finance.report.bean.pojo.LogisticsExtend;
import com.finance.util.DateUtil;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class Logistics extends BaseObject {
	//应揽收时间
	private Date acceptScheduled;
	//是否完成初次入库(是否已揽收 1是0非)
	private Integer accept;
	//第一次入库时间
	private Date acceptTime;
	//是否完成出库(1是0非)
	private Integer warehouseOut;
	//第一次出库时间
	private Date warehouseOutTime;
	//是否到配送站点(1是0非)
	private Integer siteIn;
	//最近一次到站时间
	private Date siteInTime;
	//是否已领货配送
	private Integer siteOut;
	//领货时间
	private Date siteOutTime;
	//承诺送达时间
	private Date signTimePromised;
	//运单号
	private String waybillNum;
	//订单号
	private String businessCode;
	//省份编码
	private Region provinceConsignee;
	//地级市编码
	private Region cityConsignee;
	//县级单位编码
	private Region countyConsignee;
	//收件地址
	private String addressConsignee;
	//收件人手机号
	private String mobileConsignee;
	//运单配送类型(枚举 0配送 1上门换 2上门退)
	private Integer direction;
	//运输温度等级 (枚举 0常温 1生鲜冷链)
	private Integer temperature;
	//配送时效要求 (枚举 0未知 1当日达 2次晨达 3三日达 4工作日 5节假日 6夜间配 7上午达 8下午达)
	private Integer expressScheduleType;
	//包裹大小规格 (枚举 0未知 1小件 2大件)
	private Integer packageSize;
	//是否是贵品 (枚举1是0非)
	private Integer expensive;
	//包裹重量(单位g)
	private BigDecimal weight;
	//包裹体积(单位立方厘米)
	private String volume;
	//包裹长度(单位厘米)
	private String length;
	//包裹宽度(单位厘米)
	private String width;
	//包裹高度(单位厘米)
	private String height;
	//运单来源(0系统接入 1手工导入)
	private Integer importSource;
	//供货商
	private Supplier supplier;
	//供货商发货仓库
	private String supplierWarehouse;
	//收件人姓名
	private String nameConsignee;
	//代收货款
	private String cod;
	//代退货款
	private String codBack;
	//订单价格
	private String orderAmount;
	//发货数量
	private String sendNum;
	//配送员工号
	private String postmanNo;
	//运单导入机构
	private Organization orgAccept;
	//货物当前机构编码
	private Organization orgCurrent;
	//货物实际配送站点编码
	private Organization orgDelivery;
	//预分拣匹配的站点编码
	private Organization orgTarget;
	//配送状态( 0配送中 1成功 2失败)
	private Integer status;
	//运单流转节点(000系统导入 001人工导入)
	private String nodeCurrent;
	//运单签收时间
	private Date signTime;
	//保费 运单担保收益 一般为保价乘以费率
	private String guaranteeFee;
	//本人签收(1是0非)
	private Integer signer;
	//供货商备注
	private String businessRemark;
	//运单备注
	private String remark;
	//运单拓展
	private LogisticsExtend logisticsExtend;

	public String getAcceptScheduledStr(){
		if(this.acceptScheduled==null){
			return null;
		}
		return DateUtil.dateFormat(this.acceptScheduled);
	}

	public String getAcceptTimeStr(){
		if(this.acceptTime==null){
			return null;
		}
		return DateUtil.dateFormat(this.acceptTime);
	}
	public String getwarehouseOutTimeStr(){
		if(this.warehouseOutTime==null){
			return null;
		}
		return DateUtil.dateFormat(this.warehouseOutTime);
	}

	public String getSiteInTimeStr(){
		if(this.siteInTime==null){
			return null;
		}
		return DateUtil.dateFormat(this.siteInTime);
	}

	public String getSiteOutTimeStr(){
		if(this.siteOutTime==null){
			return null;
		}
		return DateUtil.dateFormat(this.siteOutTime);
	}

	public String getSignTimePromisedStr(){
		if(this.signTimePromised==null){
			return null;
		}
		return DateUtil.dateFormat(this.signTimePromised);
	}
	public String getsignTimeStr(){
		if(this.signTime==null){
			return null;
		}
		return DateUtil.dateFormat(this.signTime);
	}
}